今天要來介紹 mini-batch, Stochestic Gradient Descent 有何差別
若是今天訓練集的資料量較大(e.g. m=5,000,000),直接進行訓練將會耗費大量時間,Gradient Descent 跑過整個資料集才能踏出一步
為了加速,我們需要利用 mini-batch 這個方法
稍微提及一下:
若看到訓練過程迭代了 200 次,也就是跑了 200 個 batch,而 batch size = 16
總共跑了 16 * 200 = 3200 筆資料
你的 Training data size = 100
Epoch 數即為 3200 / 100 = 32 個
而 mini-batch 就是在指調整 batch size 的過程
適當的調整 batch size 可以讓 GD 的下降速度變得更快
有時會看到 Stochestic Gradient Descent 這個詞
上方的不等式會看到 1 < batch size,原因是當你 batch size = 1 時,我們稱為**Stochestic Gradient Descent **
用一張圖來描述:
簡單來說就是:
寫成 code 搞不好清楚一點
if x == m:
Batch_GD()
elif x == 1:
Stochastic_GD()
else :
Mini_Batch_GD()